home *** CD-ROM | disk | FTP | other *** search
- /*
- * @(#) wonder.xgi 5.3 91/09/30
- */
- /*
- * @(#) wonder.xgi 23.2 90/12/13
- *
- * Copyright (C) The Santa Cruz Operation, 1989.
- * This Module contains Proprietary Information of
- * The Santa Cruz Operation, and should be treated as Confidential.
- *
- *
- * Copyright (C) ATI Technologies Inc., 1990
- */
-
- /* *********************************************************************** *
- * ATI/WONDER.XGI - XEGIA(tm) GrafInfo File for ATI VGAWONDER V3 *
- * VGAWONDER V4 *
- * VGAWONDER V5 *
- * and Standard VGA *
- * *
- * LAST UPDATE : OCT 17, 1990 by ATI *
- * LAST UPDATE : DEC 13, 1990 by SCO *
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *
- * *
- * ATI.WONDER.VGA.640x350-16 STD VGA *
- * ATI.WONDER.VGA.640x480-16 STD VGA *
- * ATI.WONDER.ATIVGA.V5-800x600-16 Super VGA 800x600/16 56HZ *
- * ATI.WONDER.ATIVGA.V4-800x600-16 Super VGA 800x600/16 56HZ *
- * ATI.WONDER.ATIVGA.V3-800x600-16 Super VGA 800x600/16 56HZ *
- * *
- * *********************************************************************** */
-
- VENDOR ATI "ATI"
- MODEL WONDER "VGA WONDER"
- CLASS VGA "STD VGA"
- MODE 640x350-16 "640x350 16-color" /* STD VGA 640x350 16-color */
-
- MEMORY(0xA0000,0x10000); /* Base Address, Length */
- PORT(0x3C2,0x3CA,0x3CC,0x3DA); /* General/External registers */
- PORT(0x3C0,0x3C1); /* Attribute */
- PORT(0x3C7,0x3C8,0x3C9); /* Color registers */
- PORT(0x3C4,0x3C5); /* Sequencer */
- PORT(0x3CE,0x3CF); /* Graphics */
- PORT(0x3D4,0x3D5); /* CRTC */
-
- DATA
- {
- XDRIVER = "mw";
- VISUAL = "PseudoColor";
- DEPTH = 4;
- DEVTYPE = 01;
- DEVTECH = 0x0D; /* VGA */
- PIXBYTES = 80;
- PIXWIDTH = 640;
- PIXHEIGHT = 350;
- PIXRESX = 68;
- PIXRESY = 50;
- PIXBITS = 1;
- PIXPLANES = 4;
- MAPTYPE = "EGA";
- BASEADDRESS = 0xA0000;
- INTERLEAVE = 1;
- INTERSIZE = 80;
- }
-
- PROCEDURE SetGraphics
- {
- in(r63,0x3DA); /* reset attr F/F */
- out(0x3C0,0); /* disable palette */
-
- r0 = 1; r1 = 1; r2 = 0x0F; r3 = 0; r4 = 6;
- bout(6,0x3C4,0x3C5); /* reset, sequencer regs */
-
- out(0x3C2,0xA3); /* misc out reg */
- r0=3; bout(1,0x3C4,0x3C5); /* sequencer enable */
-
- out(0x3D4,0x11); out(0x3D5,0); /* unprotect crtc regs 0-7 */
- r0 = 0x5F; r1 = 0x4F; r2 = 0x50; r3 = 0x82; /* crtc */
- r4 = 0x54; r5 = 0x80; r6 = 0xBF; r7 = 0x1F;
- r8 = 0x00; r9 = 0x40; r10 = 0x00; r11 = 0x00;
- r12 = 0x00; r13 = 0x00; r14 = 0x00; r15 = 0x00;
- r16 = 0x83; r17 = 0x85; r18 = 0x5D; r19 = 0x28;
- r20 = 0x0F; r21 = 0x63; r22 = 0xBA; r23 = 0xE3;
- r24 = 0xFF; bout(25,0x3D4,0x3D5);
-
- out(0x3CC,0x00); out(0x3CA,0x01); /* graphics controller */
- r0 = 0x00; r1 = 0x00; r2 = 0x00; r3 = 0x00;
- r4 = 0x00; r5 = 0x00; r6 = 0x05; r7 = 0x0F;
- r8 = 0xFF; bout( 9, 0x3CE, 0x3CF );
-
- in(r63,0x3DA); /* reset attr F/F */
-
- r0 = 0x00; r1 = 0x01; r2 = 0x02; r3 = 0x03; /* palette */
- r4 = 0x04; r5 = 0x05; r6 = 0x14; r7 = 0x07;
- r8 = 0x38; r9 = 0x39; r10 = 0x3A; r11 = 0x3B;
- r12 = 0x3C; r13 = 0x3D; r14 = 0x3E; r15 = 0x3F;
-
- r16 = 0x01; r17 = 0x00; r18 = 0x0F; r19 = 0x00; /* attr cntlr */
- bout(20,0x3C0,0x3C0);
-
- out(0x3C0,0x20); /* enable palette */
- }
-
-
- PROCEDURE SetText
- {
- in(r63,0x3DA); /* reset attr F/F */
- out(0x3C0,0); /* disable palette */
-
- r0 = 0x01; r1 = 0x00; r2 = 0x03; r3 = 0x00; r4 = 0x02;
- bout(5,0x3C4,0x3C5); /* sequencer regs */
-
- out(0x3C2,0x67); /* misc out reg */
- r0=0x03; bout(1,0x3C4,0x3C5); /* sequencer enable */
-
- out(0x3D4,0x11); out(0x3D5,0); /* unprotect crtc regs 0-7 */
- r0 = 0x5F; r1 = 0x4F; r2 = 0x50; r3 = 0x82; /* crtc */
- r4 = 0x55; r5 = 0x81; r6 = 0xBF; r7 = 0x1F;
- r8 = 0x00; r9 = 0x4F; r10 = 0x0D; r11 = 0x0E;
- r12 = 0x00; r13 = 0x00; r14 = 0x00; r15 = 0x00;
- r16 = 0x9C; r17 = 0x8E; r18 = 0x8F; r19 = 0x28;
- r20 = 0x1F; r21 = 0x96; r22 = 0xB9; r23 = 0xA3;
- r24 = 0xFF; bout(25,0x3D4,0x3D5);
-
- out(0x3CC,0x00); out(0x3CA,0x01); /* graphics controller */
- r0 = 0x00; r1 = 0x00; r2 = 0x00; r3 = 0x00;
- r4 = 0x00; r5 = 0x10; r6 = 0x0E; r7 = 0x00;
- r8 = 0xFF; bout(9,0x3CE,0x3CF);
-
- in(r63,0x3DA); /* reset attr F/F */
-
- r0 = 0x00; r1 = 0x01; r2 = 0x02; r3 = 0x03; /* palette */
- r4 = 0x04; r5 = 0x05; r6 = 0x14; r7 = 0x07;
- r8 = 0x38; r9 = 0x39; r10 = 0x3A; r11 = 0x3B;
- r12 = 0x3C; r13 = 0x3D; r14 = 0x3E; r15 = 0x3F;
- r16 = 0x0C; r17 = 0x00; r18 = 0x0F; r19 = 0x08; /* attr cntlr */
- bout(20,0x3C0,0x3C0);
-
- out(0x3C0,0x20); /* enable palette */
- }
-
-
- /* ********************************************************************* */
-
- VENDOR ATI "ATI"
- MODEL WONDER "VGA WONDER"
- CLASS VGA "STD VGA"
- MODE 640x480-16 "640x480 16-color" /* STD VGA 640x480 16-color */
-
- MEMORY(0xA0000,0x10000); /* Basee Address, Length */
- PORT(0x3C2,0x3CA,0x3CC,0x3DA); /* General/External registers */
- PORT(0x3C0,0x3C1); /* Attribute */
- PORT(0x3C7,0x3C8,0x3C9); /* Color registers */
- PORT(0x3C4,0x3C5); /* Sequencer */
- PORT(0x3CE,0x3CF); /* Graphics */
- PORT(0x3D4,0x3D5); /* CRTC */
-
- DATA
- {
- XDRIVER = "mw";
- VISUAL = "PseudoColor";
- DEPTH = 4;
- DEVTYPE = 01;
- DEVTECH = 0x0D; /* VGA */
- PIXBYTES = 80;
- PIXWIDTH = 640;
- PIXHEIGHT = 480;
- PIXRESX = 68;
- PIXRESY = 68;
- PIXBITS = 1;
- PIXPLANES = 4;
- MAPTYPE = "EGA";
- BASEADDRESS = 0xA0000;
- INTERLEAVE = 1;
- INTERSIZE = 80;
- }
-
- PROCEDURE SetGraphics
- {
- in(r63,0x3DA); /* reset attr F/F */
- out(0x3C0,0); /* disable palette */
-
- r0 = 1; r1 = 1; r2 = 0x0F; r3 = 0; r4 = 6;
- bout(5,0x3C4,0x3C5); /* reset, sequencer regs */
-
- out(0x3C2,0xE3); /* misc out reg */
- r0=3; bout(1,0x3C4,0x3C5); /* sequencer enable */
-
- out(0x3D4,0x11); out(0x3D5,0); /* unprotect crtc regs 0-7 */
- r0 = 0x5F; r1 = 0x4F; r2 = 0x50; r3 = 0x82; /* crtc */
- r4 = 0x54; r5 = 0x80; r6 = 0x0B; r7 = 0x3E;
- r8 = 0x00; r9 = 0x40; r10 = 0x00; r11 = 0x00;
- r12 = 0x00; r13 = 0x00; r14 = 0x00; r15 = 0x00;
- r16 = 0xEA; r17 = 0x8C; r18 = 0xDF; r19 = 0x28;
- r20 = 0x00; r21 = 0xE7; r22 = 0x04; r23 = 0xE3;
- r24 = 0xFF; bout(25,0x3D4,0x3D5);
-
-
- out(0x3CC,0x00); out(0x3CA,0x01); /* graphics controller */
- r0 = 0x00; r1 = 0x00; r2 = 0x00; r3 = 0x00;
- r4 = 0x00; r5 = 0x00; r6 = 0x05; r7 = 0x0F;
- r8 = 0xFF; bout( 9, 0x3CE, 0x3CF );
-
- in(r63,0x3DA); /* reset attribute Flip/Flop */
-
- r0 = 0x00; r1 = 0x01; r2 = 0x02; r3 = 0x03; /* palette */
- r4 = 0x04; r5 = 0x05; r6 = 0x14; r7 = 0x07;
- r8 = 0x38; r9 = 0x39; r10 = 0x3A; r11 = 0x3B;
- r12 = 0x3C; r13 = 0x3D; r14 = 0x3E; r15 = 0x3F;
-
- r16 = 0x01; r17 = 0x00; r18 = 0x0F; r19 = 0x00; /* attr cntlr */
- bout(20,0x3C0,0x3C0);
-
- out(0x3C0,0x20); /* enable palette */
- }
-
-
- PROCEDURE SetText
- {
- in(r63,0x3DA); /* reset attribute Flip/Flop */
- out(0x3C0,0); /* disable palette */
-
- r0 = 0x01; r1 = 0x00; r2 = 0x03; r3 = 0x00; r4 = 0x02;
- bout(5,0x3C4,0x3C5); /* sequencer regs */
-
- out(0x3C2,0x67); /* misc out reg */
- r0=0x03; bout(1,0x3C4,0x3C5); /* sequencer enable */
-
- out(0x3D4,0x11); out(0x3D5,0); /* unprotect crtc regs 0-7 */
- r0 = 0x5F; r1 = 0x4F; r2 = 0x50; r3 = 0x82; /* crtc */
- r4 = 0x55; r5 = 0x81; r6 = 0xBF; r7 = 0x1F;
- r8 = 0x00; r9 = 0x4F; r10 = 0x0D; r11 = 0x0E;
- r12 = 0x00; r13 = 0x00; r14 = 0x00; r15 = 0x00;
- r16 = 0x9C; r17 = 0x8E; r18 = 0x8F; r19 = 0x28;
- r20 = 0x1F; r21 = 0x96; r22 = 0xB9; r23 = 0xA3;
- r24 = 0xFF; bout(25,0x3D4,0x3D5);
-
- out(0x3CC,0x00); out(0x3CA,0x01); /* graphics controller */
- r0 = 0x00; r1 = 0x00; r2 = 0x00; r3 = 0x00;
- r4 = 0x00; r5 = 0x10; r6 = 0x0E; r7 = 0x00;
- r8 = 0xFF; bout(9,0x3CE,0x3CF);
-
- in(r63,0x3DA); /* reset attr F/F */
-
- r0 = 0x00; r1 = 0x01; r2 = 0x02; r3 = 0x03; /* palette */
- r4 = 0x04; r5 = 0x05; r6 = 0x14; r7 = 0x07;
- r8 = 0x38; r9 = 0x39; r10 = 0x3A; r11 = 0x3B;
- r12 = 0x3C; r13 = 0x3D; r14 = 0x3E; r15 = 0x3F;
- r16 = 0x0C; r17 = 0x00; r18 = 0x0F; r19 = 0x08; /* attr cntlr */
- bout(20,0x3C0,0x3C0);
-
- out(0x3C0,0x20); /* enable palette */
- }
-
-
- /*
- * NOTE!! This entry is for an ATI VGA Wonder with a
- * rev 2 chip set using clock chip.
- * The chip set revision level can be determined by
- * examining the byte at offset 0x43 in the VGA BIOS (usually at
- * address C000:0043) using DOS debug. This location contains the
- * ATI chip set revision level as an ASCII digit - ie 0x32 for rev 2.
- */
-
- /* ********************************************************************* */
-
- VENDOR ATI "ATI"
- MODEL WONDER "VGA WONDER"
- CLASS ATIVGA "ATI VGA"
- MODE V5-800x600-16 "V5 800x600 16-color Rev 2 56HZ"
-
-
- MEMORY(0xA0000,0x10000); /* Base Address, Length */
- PORT(0x1CE,0x1CF); /* ATI extended register */
- PORT(0x3C2,0x3CA,0x3CC,0x3DA); /* General/External registers */
- PORT(0x3C0,0x3C1); /* Attribute */
- PORT(0x3C7,0x3C8,0x3C9); /* Color registers */
- PORT(0x3C4,0x3C5); /* Sequencer */
- PORT(0x3CE,0x3CF); /* Graphics */
- PORT(0x3D4,0x3D5); /* CRTC */
-
- DATA
- {
- XDRIVER = "mw";
- VISUAL = "PseudoColor";
- DEPTH = 4;
- DEVTYPE = 01;
- DEVTECH = 0x0D; /* VGA */
- PIXBYTES = 100;
- PIXWIDTH = 800;
- PIXHEIGHT = 600;
- PIXRESX = 64;
- PIXRESY = 54;
- PIXBITS = 1;
- PIXPLANES = 4;
- MAPTYPE = "EGA";
- BASEADDRESS = 0xA0000;
- INTERLEAVE = 1;
- INTERSIZE = 80;
- }
-
- PROCEDURE SetGraphics /* ATI mode 0x54 */
- {
- /* sequencer */
- r0 = 0x1; /* reset */
- r1 = 0x1;
- r2 = 0xF;
- r3 = 0x0;
- r4 = 0x86;
- bout(5, 0x3C4, 0x3C5);
-
-
- /* set ATI extended registers to mode 54h V5 */
-
- /* ATI Reg 0 = XX00000X */
- out(0x1CE, 0xB0); in(r63, 0x1CF); and(r63, 0xC1);
- out(0x1CE, 0xB0); out(0x1CF, r63);
- /* ATI Reg 1 = X0000XXX */
- out(0x1CE, 0xB1); in(r63, 0x1CF); and(r63, 0x87);
- out(0x1CE, 0xB1); out(0x1CF, r63);
- /* ATI Reg 3 = XXX1XXXX */
- out(0x1CE, 0xB3); in(r63, 0x1CF); and(r63, 0xbf); or(r63, 0x10);
- out(0x1CE, 0xB3); out(0x1CF, r63);
- /* ATI Reg 5 = 0XXXXXXX */
- out(0x1CE, 0xB5); in(r63, 0x1CF); and(r63, 0x7f);
- out(0x1CE, 0xB5); out(0x1CF, r63);
- /* ATI Reg 6 = XXX00XXX */
- out(0x1CE, 0xB6); in(r63, 0x1CF); and(r63, 0xe7);
- out(0x1CE, 0xB6); out(0x1CF, r63);
- /* ATI Reg 8 = 01XXXXXX */
- out(0x1CE, 0xB8); in(r63, 0x1CF); and(r63, 0x3f);
- out(0x1CE, 0xB8); out(0x1CF, r63);
- /* ATI Reg E = XXXXXX0X */
- out(0x1CE, 0xBE); in(r63, 0x1CF); and(r63, 0xF5); or( r63, 0x10);
- out(0x1CE, 0xBE); out(0x1CF, r63);
- /* ATI Reg 9 = XXXXXX0X */
- out(0x1CE, 0xB9); in(r63, 0x1CF); and(r63, 0xFD);
- out(0x1CE, 0xB9); out(0x1CF, r63);
-
- out(0x3C2,0xEF);
-
- /* remove sequencer reset */
- r0 = 0x3;
- bout(1,0x3C4,0x3C5);
-
- /* unprotect crtc regs 0-7 */
- out(0x3D4, 0x11); out(0x3D5, 0x0E);
-
- /* crtc */
- r0 = 0x7A; r1 = 0x63; r2 = 0x65; r3 = 0x9D;
- r4 = 0x67; r5 = 0x92; r6 = 0x38; r7 = 0x1F;
- r8 = 0; r9 = 0; r10 = 0; r11 = 0;
- r12 = 0; r13 = 0; r14 = 0; r15 = 0;
- r16 = 0x2D; r17 = 0x8E; r18 = 0x2B; r19 = 0x32;
- r20 = 0xF; r21 = 0x32; r22 = 0x34; r23 = 0xE7;
- r24 = 0xFF;
- bout( 25, 0x3d4, 0x3D5 );
-
- /* attribute controller */
- in(r63,0x3DA); /* reset f/f */
-
- /* palette */
- r0 = 00; r1 = 01; r2 = 02; r3 = 03;
- r4 = 04; r5 = 05; r6 = 0x14; r7 = 07;
- r8 = 0x38; r9 = 0x39; r10 = 0x3A; r11 = 0x3B;
- r12 = 0x3C; r13 = 0x3D; r14 = 0x3E; r15 = 0x3F;
- /* attribute controller */
- r16 = 01; r17 = 00; r18 = 0x0F; r19 = 00;
- r20 = 0;
- bout( 21, 0x3C0, 0x3C0 );
-
- /* enable palette */
- out( 0x3C0, 0x20);
-
- /* graphics controller */
- r0 = 0x0;
- r1 = 0x0;
- r2 = 0x0;
- r3 = 0x0;
- r4 = 0x0;
- r5 = 0x0;
- r6 = 0x5;
- r7 = 0xF;
- r8 = 0xFF;
- bout( 9, 0x3CE, 0x3CF );
-
- }
-
- PROCEDURE SetText
- {
-
- r0 = 0x01; r1 = 0x00; r2 = 0x03; r3 = 0x00; r4 = 0x02;
- bout(5,0x3C4,0x3C5); /* sequencer regs */
-
- /* set ATI extended registers to initial state V5 */
-
- /* ATI Reg 0 = XX00000X */
- out(0x1CE, 0xB0); in(r63, 0x1CF); and(r63, 0xC1);
- out(0x1CE, 0xB0); out(0x1CF, r63);
- /* ATI Reg 1 = X0000XXX */
- out(0x1CE, 0xB1); in(r63, 0x1CF); and(r63, 0x87);
- out(0x1CE, 0xB1); out(0x1CF, r63);
- /* ATI Reg 3 = XXX1XXXX */
- out(0x1CE, 0xB3); in(r63, 0x1CF); and(r63, 0xbf); or(r63, 0x10);
- out(0x1CE, 0xB3); out(0x1CF, r63);
- /* ATI Reg 5 = 0XXXXXXX */
- out(0x1CE, 0xB5); in(r63, 0x1CF); and(r63, 0x7f);
- out(0x1CE, 0xB5); out(0x1CF, r63);
- /* ATI Reg 6 = XXX00XXX */
- out(0x1CE, 0xB6); in(r63, 0x1CF); and(r63, 0xe7);
- out(0x1CE, 0xB6); out(0x1CF, r63);
- /* ATI Reg 8 = 01XXXXXX */
- out(0x1CE, 0xB8); in(r63, 0x1CF); and(r63, 0x7f); or(r63, 0x40);
- out(0x1CE, 0xB8); out(0x1CF, r63);
- /* ATI Reg E = XXXXXX0X */
- out(0x1CE, 0xBE); in(r63, 0x1CF); and(r63, 0xF5); or( r63, 0x10);
- out(0x1CE, 0xBE); out(0x1CF, r63);
- /* ATI Reg 9 = XXXXXX0X */
- out(0x1CE, 0xB9); in(r63, 0x1CF); and(r63, 0xFD); or( r63, 0x02);
- out(0x1CE, 0xB9); out(0x1CF, r63);
-
- out(0x3C2,0x67); /* misc out reg */
-
- r0=0x03; bout(1,0x3C4,0x3C5); /* sequencer enable */
-
- /* unprotect crtc regs 0-7 */
- out(0x3D4, 0x11); out(0x3D5, 0x0E);
-
- r0 = 0x5F; r1 = 0x4F; r2 = 0x50; r3 = 0x82; /* crtc */
- r4 = 0x55; r5 = 0x81; r6 = 0xBF; r7 = 0x1F;
- r8 = 0x00; r9 = 0x4F; r10 = 0x0D; r11 = 0x0E;
- r12 = 0x00; r13 = 0x00; r14 = 0x00; r15 = 0x00;
- r16 = 0x9C; r17 = 0x8E; r18 = 0x8F; r19 = 0x28;
- r20 = 0x0F; r21 = 0x96; r22 = 0xB9; r23 = 0xA3;
- r24 = 0xFF; bout(25,0x3D4,0x3D5);
-
- in(r63,0x3DA); /* reset attr F/F */
-
- r0 = 0x00; r1 = 0x01; r2 = 0x02; r3 = 0x03; /* palette */
- r4 = 0x04; r5 = 0x05; r6 = 0x14; r7 = 0x07;
- r8 = 0x38; r9 = 0x39; r10 = 0x3A; r11 = 0x3B;
- r12 = 0x3C; r13 = 0x3D; r14 = 0x3E; r15 = 0x3F;
- r16 = 0x0C; r17 = 0x00; r18 = 0x0F; r19 = 0x08; /* attr cntlr */
- bout(20,0x3C0,0x3C0);
-
- out(0x3C0,0x20); /* enable palette */
-
- out(0x3CC,0x00); out(0x3CA,0x01); /* graphics controller */
- r0 = 0x00; r1 = 0x00; r2 = 0x00; r3 = 0x00;
- r4 = 0x00; r5 = 0x10; r6 = 0x0E; r7 = 0x00;
- r8 = 0xFF; bout(9,0x3CE,0x3CF);
-
- }
-
- /*
- * NOTE!! This entry is for an ATI VGA Wonder with a
- * rev 2 chip set using 4 crystals.
- * The chip set revision level can be determined by
- * examining the byte at offset 0x43 in the VGA BIOS (usually at
- * address C000:0043) using DOS debug. This location contains the
- * ATI chip set revision level as an ASCII digit - ie 0x32 for rev 2.
- */
-
- /* ********************************************************************* */
-
- VENDOR ATI "ATI"
- MODEL WONDER "VGA WONDER"
- CLASS ATIVGA "ATI VGA"
- MODE V4-800x600-16 "V4 800x600 16-color Rev 2 56HZ"
-
-
- MEMORY(0xA0000,0x10000); /* Base Address, Length */
- PORT(0x1CE,0x1CF); /* ATI extended register */
- PORT(0x3C2,0x3CA,0x3CC,0x3DA); /* General/External registers */
- PORT(0x3C0,0x3C1); /* Attribute */
- PORT(0x3C7,0x3C8,0x3C9); /* Color registers */
- PORT(0x3C4,0x3C5); /* Sequencer */
- PORT(0x3CE,0x3CF); /* Graphics */
- PORT(0x3D4,0x3D5); /* CRTC */
-
- DATA
- {
- XDRIVER = "mw";
- VISUAL = "PseudoColor";
- DEPTH = 4;
- DEVTYPE = 01;
- DEVTECH = 0x0D; /* VGA */
- PIXBYTES = 100;
- PIXWIDTH = 800;
- PIXHEIGHT = 600;
- PIXRESX = 64;
- PIXRESY = 54;
- PIXBITS = 1;
- PIXPLANES = 4;
- MAPTYPE = "EGA";
- BASEADDRESS = 0xA0000;
- INTERLEAVE = 1;
- INTERSIZE = 80;
- }
-
- PROCEDURE SetGraphics /* ATI mode 0x54 */
- {
-
- /* sequencer */
- r0 = 0x1; /* reset */
- r1 = 0x1;
- r2 = 0xF;
- r3 = 0x0;
- r4 = 0x86;
- bout(5, 0x3C4, 0x3C5);
-
- /* set ATI extended registers to mode 54h V4 */
-
- /* ATI Reg 0 = XX00000X */
- out(0x1CE, 0xB0); in(r63, 0x1CF); and(r63, 0xC1);
- out(0x1CE, 0xB0); out(0x1CF, r63);
- /* ATI Reg 1 = X0000XXX */
- out(0x1CE, 0xB1); in(r63, 0x1CF); and(r63, 0x87);
- out(0x1CE, 0xB1); out(0x1CF, r63);
- /* ATI Reg 3 = XXX1XXXX */
- out(0x1CE, 0xB3); in(r63, 0x1CF); and(r63, 0xBF); or(r63, 0x10);
- out(0x1CE, 0xB3); out(0x1CF, r63);
- /* ATI Reg 5 = 0XXXXXXX */
- out(0x1CE, 0xB5); in(r63, 0x1CF); and(r63, 0x7f);
- out(0x1CE, 0xB5); out(0x1CF, r63);
- /* ATI Reg 6 = XXX00XXX */
- out(0x1CE, 0xB6); in(r63, 0x1CF); and(r63, 0xe7);
- out(0x1CE, 0xB6); out(0x1CF, r63);
- /* ATI Reg 8 = 01XXXXXX */
- out(0x1CE, 0xB8); in(r63, 0x1CF); and(r63, 0x3f);
- out(0x1CE, 0xB8); out(0x1CF, r63);
- /* ATI Reg E = XXXXXX0X */
- out(0x1CE, 0xBE); in(r63, 0x1CF); and(r63, 0xE5); or(r63, 0x10);
- out(0x1CE, 0xBE); out(0x1CF, r63);
-
- out(0x3C2,0xEF);
-
- /* remove sequencer reset */
- r0 = 0x3;
- bout(1,0x3C4,0x3C5);
-
- /* unprotect crtc regs 0-7 */
- out(0x3D4, 0x11); out(0x3D5, 0x0E);
-
- /* crtc */
- r0 = 0x7A; r1 = 0x63; r2 = 0x65; r3 = 0x9D;
- r4 = 0x67; r5 = 0x92; r6 = 0x38; r7 = 0x1F;
- r8 = 0; r9 = 0; r10 = 0; r11 = 0;
- r12 = 0; r13 = 0; r14 = 0; r15 = 0;
- r16 = 0x2D; r17 = 0x8E; r18 = 0x2B; r19 = 0x32;
- r20 = 0xF; r21 = 0x32; r22 = 0x34; r23 = 0xE7;
- r24 = 0xFF;
- bout( 25, 0x3d4, 0x3D5 );
-
- /* attribute controller */
- in(r63,0x3DA); /* reset f/f */
-
- /* palette */
- r0 = 00; r1 = 01; r2 = 02; r3 = 03;
- r4 = 04; r5 = 05; r6 = 0x14; r7 = 07;
- r8 = 0x38; r9 = 0x39; r10 = 0x3A; r11 = 0x3B;
- r12 = 0x3C; r13 = 0x3D; r14 = 0x3E; r15 = 0x3F;
- /* attribute controller */
- r16 = 01; r17 = 00; r18 = 0x0F; r19 = 00;
- r20 = 0;
- bout( 21, 0x3C0, 0x3C0 );
-
- /* enable palette */
- out( 0x3C0, 0x20);
-
- /* graphics controller */
- r0 = 0x0;
- r1 = 0x0;
- r2 = 0x0;
- r3 = 0x0;
- r4 = 0x0;
- r5 = 0x0;
- r6 = 0x5;
- r7 = 0xF;
- r8 = 0xFF;
- bout( 9, 0x3CE, 0x3CF );
-
- }
-
- PROCEDURE SetText
- {
-
- r0 = 0x01; r1 = 0x00; r2 = 0x03; r3 = 0x00; r4 = 0x02;
- bout(5,0x3C4,0x3C5); /* sequencer regs */
-
- /* set ATI extended registers to initial state V4 */
-
- /* ATI Reg 0 = XX00000X */
- out(0x1CE, 0xB0); in(r63, 0x1CF); and(r63, 0xC1);
- out(0x1CE, 0xB0); out(0x1CF, r63);
- /* ATI Reg 1 = X0000XXX */
- out(0x1CE, 0xB1); in(r63, 0x1CF); and(r63, 0x87);
- out(0x1CE, 0xB1); out(0x1CF, r63);
- /* ATI Reg 3 = XXX1XXXX */
- out(0x1CE, 0xB3); in(r63, 0x1CF); and(r63, 0xbf); or(r63, 0x10);
- out(0x1CE, 0xB3); out(0x1CF, r63);
- /* ATI Reg 5 = 0XXXXXXX */
- out(0x1CE, 0xB5); in(r63, 0x1CF); and(r63, 0x7f);
- out(0x1CE, 0xB5); out(0x1CF, r63);
- /* ATI Reg 6 = XXX00XXX */
- out(0x1CE, 0xB6); in(r63, 0x1CF); and(r63, 0xe7);
- out(0x1CE, 0xB6); out(0x1CF, r63);
- /* ATI Reg 8 = 01XXXXXX */
- out(0x1CE, 0xB8); in(r63, 0x1CF); and(r63, 0x7f); or(r63, 0x40);
- out(0x1CE, 0xB8); out(0x1CF, r63);
- /* ATI Reg E = XXXXXX0X */
- out(0x1CE, 0xBE); in(r63, 0x1CF); and(r63, 0xE5);
- out(0x1CE, 0xBE); out(0x1CF, r63);
-
- out(0x3C2,0x67); /* misc out reg */
-
- r0=0x03; bout(1,0x3C4,0x3C5); /* sequencer enable */
-
- /* unprotect crtc regs 0-7 */
- out(0x3D4, 0x11); out(0x3D5, 0x0E);
-
- r0 = 0x5F; r1 = 0x4F; r2 = 0x50; r3 = 0x82; /* crtc */
- r4 = 0x55; r5 = 0x81; r6 = 0xBF; r7 = 0x1F;
- r8 = 0x00; r9 = 0x4F; r10 = 0x0D; r11 = 0x0E;
- r12 = 0x00; r13 = 0x00; r14 = 0x00; r15 = 0x00;
- r16 = 0x9C; r17 = 0x8E; r18 = 0x8F; r19 = 0x28;
- r20 = 0x0F; r21 = 0x96; r22 = 0xB9; r23 = 0xA3;
- r24 = 0xFF; bout(25,0x3D4,0x3D5);
-
- in(r63,0x3DA); /* reset attr F/F */
-
- r0 = 0x00; r1 = 0x01; r2 = 0x02; r3 = 0x03; /* palette */
- r4 = 0x04; r5 = 0x05; r6 = 0x14; r7 = 0x07;
- r8 = 0x38; r9 = 0x39; r10 = 0x3A; r11 = 0x3B;
- r12 = 0x3C; r13 = 0x3D; r14 = 0x3E; r15 = 0x3F;
- r16 = 0x0C; r17 = 0x00; r18 = 0x0F; r19 = 0x08; /* attr cntlr */
- bout(20,0x3C0,0x3C0);
-
- out(0x3C0,0x20); /* enable palette */
-
- out(0x3CC,0x00); out(0x3CA,0x01); /* graphics controller */
- r0 = 0x00; r1 = 0x00; r2 = 0x00; r3 = 0x00;
- r4 = 0x00; r5 = 0x10; r6 = 0x0E; r7 = 0x00;
- r8 = 0xFF; bout(9,0x3CE,0x3CF);
-
- }
-
- /*
- * NOTE!! This entry is for an ATI VGAWONDER with a
- * rev 1 chip set. The chip set revision level can be determined by
- * examining the byte at offset 0x43 in the VGA BIOS (usually at
- * address C000:0043) using DOS debug. This location contains the
- * ATI chip set revision level as an ASCII digit - ie 0x31 for rev 1.
- */
-
-
- /* ********************************************************************* */
-
- VENDOR ATI "ATI"
- MODEL WONDER "VGA WONDER"
- CLASS ATIVGA "ATI VGA"
- MODE V3-800x600-16 "V3 800x600 16-color Rev 1 56HZ"
-
- MEMORY(0xA0000,0x10000); /* Base Address, Length */
- PORT(0x1CE,0x1CF); /* ATI extended register */
- PORT(0x3C2,0x3CA,0x3CC,0x3DA); /* General/External registers */
- PORT(0x3C0,0x3C1); /* Attribute */
- PORT(0x3C7,0x3C8,0x3C9); /* Color registers */
- PORT(0x3C4,0x3C5); /* Sequencer */
- PORT(0x3CE,0x3CF); /* Graphics */
- PORT(0x3D4,0x3D5); /* CRTC */
-
- DATA
- {
- XDRIVER = "mw";
- VISUAL = "PseudoColor";
- DEPTH = 4;
- DEVTYPE = 01;
- DEVTECH = 0x0D; /* VGA */
- PIXBYTES = 100;
- PIXWIDTH = 800;
- PIXHEIGHT = 600;
- PIXRESX = 64;
- PIXRESY = 54;
- PIXBITS = 1;
- PIXPLANES = 4;
- MAPTYPE = "EGA";
- BASEADDRESS = 0xA0000;
- INTERLEAVE = 1;
- INTERSIZE = 80;
- }
-
- PROCEDURE SetGraphics /* ATI mode 0x54 */
- {
-
- /* sequencer */
- r0 = 0x1; /* reset */
- r1 = 0x1;
- r2 = 0xF;
- r3 = 0x0;
- r4 = 0x86;
- bout(5, 0x3C4, 0x3C5);
- /* set ATI extended registers to mode 54h V3 */
-
- /* ATI Reg 0 = XX00000X */
- out(0x1CE, 0xB0); in(r63, 0x1CF); and(r63, 0xC1); or(r63, 0x08);
- out(0x1CE, 0xB0); out(0x1CF, r63);
- /* ATI Reg 1 = X0000XXX */
- out(0x1CE, 0xB1); in(r63, 0x1CF); and(r63, 0x87);
- out(0x1CE, 0xB1); out(0x1CF, r63);
- /* ATI Reg 2 = X1XXXXX0 */
- out(0x1CE, 0xB2); in(r63, 0x1CF); and(r63, 0xFE); or(r63, 0x40);
- out(0x1CE, 0xB2); out(0x1CF, r63);
- /* ATI Reg 5 = 0XXXXXXX */
- out(0x1CE, 0xB5); in(r63, 0x1CF); and(r63, 0x7f);
- out(0x1CE, 0xB5); out(0x1CF, r63);
- /* ATI Reg 6 = XXX00XXX */
- out(0x1CE, 0xB6); in(r63, 0x1CF); and(r63, 0xe7);
- out(0x1CE, 0xB6); out(0x1CF, r63);
- /* ATI Reg 8 = 01XXXXXX */
- out(0x1CE, 0xB8); in(r63, 0x1CF); and(r63, 0x3f);
- out(0x1CE, 0xB8); out(0x1CF, r63);
-
-
- /* misc output reg */
- out(0x3C2,0xEF);
-
- /* remove sequencer reset */
- r0 = 0x3;
- bout(1,0x3C4,0x3C5);
-
- /* unprotect crtc regs 0-7 */
- out(0x3D4, 0x11); out(0x3D5, 0x0E);
-
- /* crtc */
- r0 = 0x7A; r1 = 0x63; r2 = 0x65; r3 = 0x9D;
- r4 = 0x67; r5 = 0x92; r6 = 0x38; r7 = 0x1F;
- r8 = 0; r9 = 0; r10 = 0; r11 = 0;
- r12 = 0; r13 = 0; r14 = 0; r15 = 0;
- r16 = 0x2D; r17 = 0x8E; r18 = 0x2B; r19 = 0x32;
- r20 = 0xF; r21 = 0x32; r22 = 0x34; r23 = 0xE7;
- r24 = 0xFF;
- bout( 25, 0x3d4, 0x3D5 );
-
- /* attribute controller */
- in(r63,0x3DA); /* reset f/f */
-
- /* palette */
- r0 = 00; r1 = 01; r2 = 02; r3 = 03;
- r4 = 04; r5 = 05; r6 = 0x14; r7 = 07;
- r8 = 0x38; r9 = 0x39; r10 = 0x3A; r11 = 0x3B;
- r12 = 0x3C; r13 = 0x3D; r14 = 0x3E; r15 = 0x3F;
- /* attribute controller */
- r16 = 01; r17 = 00; r18 = 0x0F; r19 = 00;
- r20 = 0;
- bout( 21, 0x3C0, 0x3C0 );
-
- /* enable palette */
- out( 0x3C0, 0x20);
-
- /* graphics controller */
- r0 = 0x0;
- r1 = 0x0;
- r2 = 0x0;
- r3 = 0x0;
- r4 = 0x0;
- r5 = 0x0;
- r6 = 0x5;
- r7 = 0xF;
- r8 = 0xFF;
- bout( 9, 0x3CE, 0x3CF );
-
- }
-
- PROCEDURE SetText
- {
-
- r0 = 0x01; r1 = 0x00; r2 = 0x03; r3 = 0x00; r4 = 0x02;
- bout(5,0x3C4,0x3C5); /* sequencer regs */
-
- /* set ATI extended registers to initial state V3 */
-
- /* ATI Reg 0 = XX00000X */
- out(0x1CE, 0xB0); in(r63, 0x1CF); and(r63, 0xC1);
- out(0x1CE, 0xB0); out(0x1CF, r63);
- /* ATI Reg 1 = X0000XXX */
- out(0x1CE, 0xB1); in(r63, 0x1CF); and(r63, 0x87);
- out(0x1CE, 0xB1); out(0x1CF, r63);
- /* ATI Reg 2 = X0XXXXX0 */
- out(0x1CE, 0xB2); in(r63, 0x1CF); and(r63, 0xBE);
- out(0x1CE, 0xB2); out(0x1CF, r63);
- /* ATI Reg 5 = 0XXXXXXX */
- out(0x1CE, 0xB5); in(r63, 0x1CF); and(r63, 0x7f);
- out(0x1CE, 0xB5); out(0x1CF, r63);
- /* ATI Reg 6 = XXX00XXX */
- out(0x1CE, 0xB6); in(r63, 0x1CF); and(r63, 0xe7);
- out(0x1CE, 0xB6); out(0x1CF, r63);
- /* ATI Reg 8 = 01XXXXXX */
- out(0x1CE, 0xB8); in(r63, 0x1CF); and(r63, 0x7f); or(r63, 0x40);
- out(0x1CE, 0xB8); out(0x1CF, r63);
-
- out(0x3C2,0x67); /* misc out reg */
-
- r0=0x03; bout(1,0x3C4,0x3C5); /* sequencer enable */
-
- /* unprotect crtc regs 0-7 */
- out(0x3D4, 0x11); out(0x3D5, 0x0E);
-
- r0 = 0x5F; r1 = 0x4F; r2 = 0x50; r3 = 0x82; /* crtc */
- r4 = 0x55; r5 = 0x81; r6 = 0xBF; r7 = 0x1F;
- r8 = 0x00; r9 = 0x4F; r10 = 0x0D; r11 = 0x0E;
- r12 = 0x00; r13 = 0x00; r14 = 0x00; r15 = 0x00;
- r16 = 0x9C; r17 = 0x8E; r18 = 0x8F; r19 = 0x28;
- r20 = 0x0F; r21 = 0x96; r22 = 0xB9; r23 = 0xA3;
- r24 = 0xFF; bout(25,0x3D4,0x3D5);
-
- in(r63,0x3DA); /* reset attr F/F */
-
- r0 = 0x00; r1 = 0x01; r2 = 0x02; r3 = 0x03; /* palette */
- r4 = 0x04; r5 = 0x05; r6 = 0x14; r7 = 0x07;
- r8 = 0x38; r9 = 0x39; r10 = 0x3A; r11 = 0x3B;
- r12 = 0x3C; r13 = 0x3D; r14 = 0x3E; r15 = 0x3F;
- r16 = 0x0C; r17 = 0x00; r18 = 0x0F; r19 = 0x08; /* attr cntlr */
- bout(20,0x3C0,0x3C0);
-
- out(0x3C0,0x20); /* enable palette */
-
- out(0x3CC,0x00); out(0x3CA,0x01); /* graphics controller */
- r0 = 0x00; r1 = 0x00; r2 = 0x00; r3 = 0x00;
- r4 = 0x00; r5 = 0x10; r6 = 0x0E; r7 = 0x00;
- r8 = 0xFF; bout(9,0x3CE,0x3CF);
-
- }
- /* End of File - ATI-WONDER.XGI */
-